ILook Interface
- Translate
- Rotate
- Zoom
- ZoomEx
- GetViewingVolume
- SetViewingVolume
ILook interface gives programmatic access to functionality equivalent to
rotation of the model with the mouse or using zoom in/out in DInsight
applications. ILook does not change nor position nor geometry of any objects in
the model. It affects only point of view and the current
Viewing Volume. Viewing
Volume is the 3D space which is visible in the window of the control. ILook
can be retrieved from IView interface ( by using QueryInterface in C++ or coercing
the reference to ILook type in Visual Basic).
See also Cannon Sample,
Interface List
HRESULT Translate( double vx, double vy, double vz )
Parameters
vx,vy,vz- [in] - translation vector
Returns
- S_OK in case of
success.
- Remarks:
As the result of call to this method the model will appear translated on the
screen in the direction of the translation vector. vx and vy values
are translation along the horizontal and vertical screen directions
correspondently. Normally vz is set to zero. vz will have any
effect only if the model falls outside the viewing volume, in which case the
model either will appear clipped or will disappear altogether.
HRESULT Rotate( double angle, double vx, double vy, double vz )
Parameters
angle - [in] angle in degrees by
which the current viewing point will be rotated (can be negative).
vx,vy,vz- [in] - axis around which the
viewing point will be rotated
Return Values
- S_OK in case of
success.
-
- Remarks:
Call to this method will change the current point of view in such way that
the model will appear rotated by angle angle around vector
with coordinates (vx, vy, vz) in the global axes.
HRESULT Zoom( double scale )
Parameters
scale - [in] value of zoom. If zoom
= 2.0 the model will appear twice as big on the screen. If zoom is less
than 1.0 the model will appear contracted otherwise it will appear expanded.
Return Values
- S_OK in case of
success.
-
-
- Remarks
-
- Allows programmatically access zoom in/out functionality of the control.
Zoom is performed respectively to the center of the current Viewing Volume..
HRESULT ZoomEx( double scale, double centerx, double centery, double centerz )
Parameters
scale - [in] value of zoom. If zoom
= 2.0 the model will appear twice as big on the screen. If zoom is less
than 1.0 the model will appear contracted otherwise it will appear expanded .
centerx, centery, centerz - [in] coordinates of point with
respect of which the model will appear expanded or contracted. The coordinates
are relative to the Eye Frame.
Return Values
S_OK in case of success.
- Remarks:
-
- The method allows programmatically access zoom in/out functionality of the
control. To obtain Eye Frame coordinates of a point use IFrameEx
as described in Global and eye coordinate systems topic.
HRESULT GetViewingVolume( int nAxis, double *pdMin, double *pdMax )
Parameters
nAxis - [in] zero based index of the
axis. 0 - horizontal direction, 1 - vertical direction, 2 - depth (see remarks
for SetViewingVolume method)
pdMin,pdMax - [out] - minimal and maximal values of nAixs-coordinate
of the current Viewing Volume.
Return Values
S_OK in case of success.
- Remarks:
-
- Call to retrieve the current viewing volume (See remarks for the next
method). Allows programmatically identify part of 3D space which is currently
displayed.
HRESULT SetViewingVolume( int nAxis, double dMin, double dMax )
Parameters
nAxis - [in] zero based index of
the axis. 0 - horizontal direction, 1 - vertical direction, 2 - depth ( see
remarks )
dMin, dMax - [in] - new range of Viewing Volume in nAxis
direction.
Return Values
S_OK in case of success.
- Remarks:
-
- Viewing Volume is the part 3D space which is currently displayed in the
window of the control. Viewing Volume is a rectangular box, four sides of which
are orthogonal to the plane of the screen and extensions of which intersect
plane of the screen at the screen edges. Dimensions of the Viewing Volume are
determined in screen axes. x axis of the screen axes (axis 0) is directed
horizontally to the right. y axis (axis 1) is directed vertically
up. z axis directed from the screen toward the viewer.
-
- Reducing
the Viewing Volume to contain only a particular object of the model is
equivalent to setting focus on the object. Everything else will be cut off.
Expanding the Viewing Volume allow to display more on the screen, which is
some sort of zoom out. Generally
speaking changing Viewing Volume is equivalent to combination of zoom and
translation operations.
Note that dimensions of the Viewing Volume in z direction (depth coordinate)
are always finite. If model falls out of the z extents of the Viewing Volume it
will appear clipped at furthest (dMin) or nearest (dMax) side of
the Viewing Volume.
|